90 PRINT"[147]":POKE53280,2:POKE53281,0:POKE646,1 100 GOTO 280 110 REM INNER TRACE LOOP 120 PRINT#1,"U1 2 0";T;S 130 INPUT#1, EN,EM$,ET,ES 140 IF EN<>0 THEN GOTO 1960:REM DISK TRACE ERROR 150 LT%(I)=LT%(I)+1 160 IF OB%(T,S)<>0 THEN GOTO 1410:REM FILE INTERSECT 170 OB%(T,S)=I 180 GET#2,A$,B$ 190 IF A$="" THEN GOTO 1450:REM TRACE LOOP CONTINUE 200 IF B$="" THEN B$=CHR$(0) 210 T=ASC(A$):S=ASC(B$) 220 GOTO 120:REM INNER TRACE LOOP 230 REM******************************* 240 REM DISK CHECK-UP 250 REM 260 REM DON FULTON 270 REM******************************* 280 DIM I,S,T,X,Y,Z 290 DIM BC,EN,ES,ET,IM,LC,OF,PF,S1,S2,SF,T1,T2 300 DIM TS%(144),SS%(144),LD%(144),LT%(144),PF%(144),N$(144) 310 DIM OB%(35,20) 320 CLOSE 1:OPEN 1,8,15:CLOSE 2:CLOSE 1 330 REM------------------------------- 340 PRINT CHR$(147) 350 PRINT 360 PRINT " DISK CHECK-UP 370 [153] " TAB(TAB(TAB(TAB(TAB(TAB(TAB(TAB(TAB(TAB(TAB(TAB(TAB(TAB(TAB( 380 PRINT " CHECKS: 390 [153] 400 [153] " -- START LINKS DIFFERENT 410 PRINT 420 PRINT " -- TRACE FILE LEN = DIR FILE LEN 430 [153] 440 [153] " -- FILES DO NOT OVERLAP 450 PRINT 460 PRINT " -- (3) BLOCKS FREE 470 [153] 480 [143]-------------------------------- 490 [143] SHO -36 CY- SHP 500 [143] CMG CMM 510 [143] CMG BOX BELOW CMM 520 [143] CMG CMM 530 [143] SHL -36 CP- SH@ 540 [143]-------------------------------- 550 [153] " (null)USRUSRUSRUSRUSRUSRUSRUSRUSRUSRUSRUSRUSRUSRUSRUSRUSRUSRUSRUSRUSRUSRUSRUSRUSRUSRUSRUSRUSRUSRUSRUSRUSRUSRUSRUSR(null) 560 PRINT " [165]THIS UTILITY DOES NOT WRITE TO DISK.[167] 570 [153] " FN THEN 580 PRINT " [165] (PROBLEM FILES ARE DISPLAYED)[146] [167] 590 [153] " FN IN INVERSE VIDEO)WAIT THEN 600 PRINT " [204][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][186] 610 [129] X[178]1 [164] 1000:[130] 620 [153] 630 [143]------------------------------- 640 [143] FIND START OF ACTIVE FILES 650 [153] 660 [153] " START LENGTH " 670 [153] "FILE T , S FILE NAME DIR--TRACE" 680 [153] "TAB(TAB(TAB(TAB( TAB(TAB(TAB(TAB(TAB( TAB(TAB(TAB(TAB(TAB(TAB(TAB(TAB(TAB(TAB(TAB( TAB(TAB(TAB( TAB(TAB(TAB(TAB(TAB(" 690 [159] 1,8,15 700 [159] 2,8,2,"#" 710 T1[178]18:S1[178]1:I[178]1 720 [143] NEXT DIRECTORY SECTOR 730 : [139] T1[178]0 [167] [137]1010:[143] DIRECTORY CLOSE 740 : [152]1,"U1 2 0";T1;S1 750 : [132]1, EN,EM$,ET,ES 760 : [139] EN[179][177]0 [167] [137] 1980:[143] DISK ERROR 770 : [161]#2,A$,B$ 780 : T2[178]T1:S2[178]S1 790 : T1[178][198](A$[170][199](0)) 800 : S1[178][198](B$[170][199](0)) 810 : [129] X[178]2 [164] 255 [169] 32 820 : [152]1,"U1 2 0";T2;S2 830 : [152]1,"B-P 2";X 840 : [132]1, EN,EM$,ET,ES 850 : [139] EN[179][177]0 [167] [137] 1980:[143] DISK ERROR 860 : [161]#2,C$,D$,E$,F$,G$,H$,I$,J$,K$,L$,M$,N$,O$,P$,Q$,R$,S$,T$,U$ 870 : [139] C$[178]"" [167] [137] 980:[143] DIRECTORY CONTINUE 880 : TS%(I)[178][198](D$[170][199](0)) 890 : SS%(I)[178][198](E$[170][199](0)) 900 : N$(I)[178]F$[170]G$[170]H$[170]I$[170]J$[170]K$[170]L$[170]M$[170]N$[170]O$[170]P$[170]Q$[170]R$[170]S$[170]T$[170]U$ 910 : [152]1, "B-P 2";X[170]28 920 : [161]#2,V$,W$ 930 : LD%(I)[178][198](V$[170][199](0))[170]256[172][198](W$[170][199](0)) 940 : [153] I;[163]4)TS%(I);[163]8)",";[163]9)SS%(I); 950 : [153] [163]13)N$(I);[163]29)LD%(I);[163]33);"--";LT%(I) 960 : I[178]I[170]1 970 : [143] DIRECTORY CONTINUE 980 : [130] 990 [137] 730:[143] NEXT DIRECTORY SECTOR 1000 [143] DIRECTORY CLOSE 1010 IM[178]I[171]1 1020 [160] 2:[160] 1 1030 [143]------------------------------ 1040 [153] 1050 [153] " CHECKING START LINKS FOR OVERLAP" 1060 [153] 1070 [139] IM[178]0 [176] IM[178]1 [167] [137] 1250:[143] START LINK END 1080 [129] I[178]2 [164] IM 1090 : [129] Y[178]1 [164] I[171]1 1100 : [139] TS%(Y)[178]TS%(I)[167] [139] SS%(Y)[178]SS%(I)[167] [137] 1150:[143] FILE OVERLAP 1110 : [130] 1120 [130] 1130 [137] 1250:[143] START LINK END 1140 [143] FILE OVERLAP 1150 : PF%(I)[178]1:PF%(Y)[178]1 1160 : OF[178]1:[143] SET OVERLAP FLAG 1170 : [153] Y;[199](18);[163]4)TS%(Y);[163]8)","; 1180 : [153] [163]9)SS%(Y);[163]13)N$(Y);[199](146); 1190 : [153] [163]29)LD%(Y);[163]33);"--";LT%(Y) 1200 : [153] I;[199](18);[163]4)TS%(I);[163]8)","; 1210 : [153] [163]9)SS%(I);[163]13)N$(I);[199](146); 1220 : [153] [163]29)LD%(I);[163]33);"--";LT%(I) 1230 [137] 1110:[143] START LINK CONTINUE 1240 [143] START LINK END 1250 [139] OF[178]0 [167] [153] " --START LINKS OK--" 1260 [143]----------------------------- 1270 [153] 1280 [153] " TRACING FILES" 1290 [153] 1300 [159] 1,8,15 1310 [159] 2,8,2,"#" 1320 [139] IM[178]0 [167] [137] 1530:[143] TRACE END 1330 [129] I[178]1 [164] IM 1340 : T[178]TS%(I) 1350 : S[178]SS%(I) 1360 : LT%(I)[178]0 1370 : PF$[178]"" 1380 : SF[178]0 1390 : [137] 120:[143] INNER TRACE LOOP 1400 : [143] FILE INTERSECT 1410 : PF%(OB%(T,S))[178]1 1420 : PF%(I)[178]1 1430 : SF[178]1:[143] SET INTERSECT FLAG 1440 : [143] TRACE LOOP CONTINUE 1450 : BC[178]BC[170]LT%(I) 1460 : [153] I;[163]4)TS%(I);[163]8)",";[163]9)SS%(I); 1470 : [139] LT%(I)[179][177]LD%(I) [167] PF%(I)[178]PF%(I)[170]2:[153] [199](18); 1480 : [153] [163]13)N$(I);[163]29)LD%(I);[163]33);"--";LT%(I) 1490 : [139] PF$[179][177]""[167] [153] " (FILE";I;"CONTAINS ";[170]PF$;")":[153] 1500 : [139] SF[178]1 [167] [153] " (FILE";I;"INTERSECTS FILE ";OB%(T,S);")":[153] 1510 [130] 1520 [143] TRACE END 1530 [160] 2:[160] 1 1540 [143]------------------------------ 1550 [153] 1560 [153] " PROBLEM FILES--" 1570 [153] " TAB(TAB(TAB(TAB(TAB(TAB(TAB(TAB(TAB(TAB(TAB(TAB(TAB(" 1580 [139] IM[178]0 [167] [137] 1710:[143] PROBLEM FILE END 1590 [129] I[178]1 [164] IM 1600 : [139] PF%(I)[178]0 [167] [137] 1690:[143] PROBLEM LOOP CONTINUE 1610 : PF[178]1:[143] SET PROBLEM FILE FLAG 1620 : [153] I; 1630 : [139] PF%(I)[178]1 [176] PF%(I)[178]3 [167] [153] [199](18); 1640 : [153] [163]4)TS%(I);[163]8)",";[163]9)SS%(I); 1650 : [153] [199](18);[163]13)N$(I);[199](146); 1660 : [139] PF%(I)[178]2 [176] PF%(I)[178]3 [167] [153] [199](18); 1670 : [153] [163]29)LD%(I);[163]33);"--";LT%(I) 1680 : [143] PROBLEM LOOP CONTINUE 1690 [130] 1700 [143] PROBLEM FILE END 1710 [139] PF[178]0 [167] [153] " NONE" 1720 [153] 1730 [153] " BLOCK COUNT = ";BC 1740 [153] 1750 [153] " BLOCKS FREE = ";664[171]BC;[163]20)"(TRACE)" 1760 [129] I[178]0 [164] IM 1770 : LC[178]LC[170]LD%(I) 1780 [130] 1790 [153] " BLOCKS FREE = ";664[171]LC;[163]20)"(DIR)" 1800 [143]------------------------------ 1810 [143] DIR BAM BLOCKS FREE 1820 [159] 1,8,15 1830 [159] 2,8,2,"#" 1840 [152]1,"U1 2 0";18;0 1850 [132]1, EN,EM$,ET,ES 1860 [139] EN[179][177]0 [167] [137] 1980:[143] DISK ERROR 1870 [129] X[178]0 [164] 35 1880 : [161]#2,W$,X$,Y$,Z$ 1890 : [139] X[179][177]0 [175] X[179][177]18 [167] BU[178]BU[170][198](W$[170][199](0)) 1900 [130] 1910 [153] " BLOCKS FREE = ";BU;[163]20)"(BAM)" 1920 [160] 2:[160] 1 1930 [128] 1940 [143]------------------------------ 1950 [143] DISK TRACE ERROR 1960 [139] EN[178]66 [167] PF$[178]"ILLEGAL LINK":[137] 1450:[143] TRACE LOOP CONTINUE 1970 [143] DISK ERROR 1980 [153] 1990 [153] " UNRECOVERABLE DISK ERROR" 2000 [153] 2010 [153] EN;EM$;ET;ES 2020 [160] 2:[160] 1 2030 [128]